using System;
using System.Collections.Generic;
using BusinessRules;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DataAccess;
using DevExpress.Web.ASPxGridView;
using DevExpress.Web.Data;

public partial class RecursosIvaAsignados : System.Web.UI.Page
{
    #region IvaRecursosAsignadosDataTableCache

    private DataTable IvaRecursosAsignadosDataTableCache
    {
        get
        {

            DataTable objTable = null;
            if (Cache[IvaRecursosAsignadosData.IVA_RECURSOS_ASIGNADOS_TABLE + "RecursosIvaAsignados.aspx"] != null)
                objTable = (DataTable)Cache[IvaRecursosAsignadosData.IVA_RECURSOS_ASIGNADOS_TABLE + "RecursosIvaAsignados.aspx"];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(IvaRecursosAsignadosData.IVA_RECURSOS_ASIGNADOS_TABLE + "RecursosIvaAsignados.aspx", value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindDatosRecursosAsignados();
        }
        else
        {
            if (IvaRecursosAsignadosDataTableCache != null)
            {
                gidvRecursosIva.DataSource = IvaRecursosAsignadosDataTableCache;
                gidvRecursosIva.DataBind();
            }
        }
    }

    #endregion

    #region - BindDatosRecursosAsignados

    private void BindDatosRecursosAsignados()
    {


        BusinessRules.IvaRecursosAsignados objIvaRecursosAsignados = new IvaRecursosAsignados(ConfigurationManager.AppSettings["Conn"]);
        IvaRecursosAsignadosData objIvaRecursosAsignadosData = objIvaRecursosAsignados.BuscarTodos();
        IvaRecursosAsignadosDataTableCache = objIvaRecursosAsignadosData;
        gidvRecursosIva.DataSource = objIvaRecursosAsignadosData.DefaultView;
        gidvRecursosIva.DataBind();
        
    }

    #endregion

    #region gidvRecursosIva_RowInserting

    protected void gidvRecursosIva_RowInserting(object sender, ASPxDataInsertingEventArgs e)
    {
        IvaRecursosAsignados objIvaRecursosAsignados = new IvaRecursosAsignados(ConfigurationManager.AppSettings["Conn"]);
        IvaRecursosAsignadosData objIvaRecursosAsignadosData = new IvaRecursosAsignadosData();
        try
        {
            DataRow objRow = objIvaRecursosAsignadosData.NewRow();
            objRow[IvaRecursosAsignadosData.IRA_VALOR_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_VALOR_FIELD].ToString();
            objRow[IvaRecursosAsignadosData.IVI_ID_FIELD] = e.NewValues[IvaRecursosAsignadosData.IVI_ID_FIELD].ToString();
            objRow[IvaRecursosAsignadosData.ZON_ID_FIELD] = e.NewValues[IvaRecursosAsignadosData.ZON_ID_FIELD].ToString();
            
            objRow[IvaRecursosAsignadosData.IRA_CONVENIOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_CONVENIOS_FIELD] != null
                    ? (object) e.NewValues[IvaRecursosAsignadosData.IRA_CONVENIOS_FIELD].ToString()
                    : 0;

            objRow[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD].ToString()
                                : 0;

            objRow[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD].ToString()
                                : 0;


            objRow[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD].ToString()
                                : 0;

            objRow[IvaRecursosAsignadosData.IRA_NOTA_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_NOTA_FIELD].ToString();



            objRow[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD].ToString()
                                : 0;


            objRow[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD].ToString()
                                : 0;


            objRow[IvaRecursosAsignadosData.IRA_REINTEGROS_OTROS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_OTROS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_OTROS_FIELD].ToString()
                                : 0;


            objIvaRecursosAsignadosData.Add(objRow);
            objIvaRecursosAsignados.AdicionarRecursosAsignadosContransacciones(objIvaRecursosAsignadosData);
        }
        catch (Exception objEx)
        {
            //ExceptionManager.Publish(objEx);
            //lblMensaje.Visible = true;
            //Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, Utilidad.TraerMensaje("gmsgErrorGeneral"), lblMensaje);
        }
        //Cancel automatic update
        e.Cancel = true;
        //back to the browse mode
        ((ASPxGridView)sender).CancelEdit();

        BindDatosRecursosAsignados();
    }

    #endregion

    #region gidvRecursosIva_RowUpdating

    protected void gidvRecursosIva_RowUpdating(object sender, ASPxDataUpdatingEventArgs e)
    {
        IvaRecursosAsignados objIvaRecursosAsignados = new IvaRecursosAsignados(ConfigurationManager.AppSettings["Conn"]);
        IvaRecursosAsignadosData objIvaRecursosAsignadosData = new IvaRecursosAsignadosData();
        try
        {
            DataRow objRow = objIvaRecursosAsignadosData.NewRow();
            objRow[IvaRecursosAsignadosData.IRA_ID_FIELD] = e.Keys[IvaRecursosAsignadosData.IRA_ID_FIELD].ToString();
            objRow[IvaRecursosAsignadosData.IRA_VALOR_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_VALOR_FIELD].ToString();
            objRow[IvaRecursosAsignadosData.IVI_ID_FIELD] = e.NewValues[IvaRecursosAsignadosData.IVI_ID_FIELD].ToString();
            objRow[IvaRecursosAsignadosData.ZON_ID_FIELD] = e.NewValues[IvaRecursosAsignadosData.ZON_ID_FIELD].ToString();
            objRow[IvaRecursosAsignadosData.IRA_CONVENIOS_FIELD] =
               e.NewValues[IvaRecursosAsignadosData.IRA_CONVENIOS_FIELD] != null
                   ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_CONVENIOS_FIELD].ToString()
                   : 0;

            objRow[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD].ToString()
                                : 0;

            objRow[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD].ToString()
                                : 0;


            objRow[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD].ToString()
                                : 0;
            if (e.NewValues[IvaRecursosAsignadosData.IRA_NOTA_FIELD] != null)
                if (!String.IsNullOrEmpty(e.NewValues[IvaRecursosAsignadosData.IRA_NOTA_FIELD].ToString()))
            objRow[IvaRecursosAsignadosData.IRA_NOTA_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_NOTA_FIELD].ToString();



            objRow[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD].ToString()
                                : 0;


            objRow[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD].ToString()
                                : 0;


            objRow[IvaRecursosAsignadosData.IRA_REINTEGROS_OTROS_FIELD] = e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_OTROS_FIELD] != null
                                ? (object)e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_OTROS_FIELD].ToString()
                                : 0;


            objIvaRecursosAsignadosData.Add(objRow);
            objIvaRecursosAsignados.ActualizarRecursosAsignadosContransacciones(objIvaRecursosAsignadosData);
        }
        catch (Exception objEx)
        {
            //ExceptionManager.Publish(objEx);
            //lblMensaje.Visible = true;
            //Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, Utilidad.TraerMensaje("gmsgErrorGeneral"), lblMensaje);
        }
        //Cancel automatic update
        e.Cancel = true;
        //back to the browse mode
        ((ASPxGridView)sender).CancelEdit();
        BindDatosRecursosAsignados();
    }

    #endregion

    #region gidvRecursosIva_RowValidating

    protected void gidvRecursosIva_RowValidating(object sender, ASPxDataValidationEventArgs e)
    {
        if (e.NewValues[IvaRecursosAsignadosData.IRA_VALOR_FIELD] == null)
            AddError(e.Errors, gidvRecursosIva.Columns[IvaRecursosAsignadosData.IRA_VALOR_FIELD],
                     "El campo es obligatorio  ");
        if (e.NewValues[IvaRecursosAsignadosData.IVI_ID_FIELD] == null)
            AddError(e.Errors, gidvRecursosIva.Columns[IvaRecursosAsignadosData.IVI_ID_FIELD],
                     "El campo es obligatorio  ");
        if (e.NewValues[IvaRecursosAsignadosData.ZON_ID_FIELD] == null)
            AddError(e.Errors, gidvRecursosIva.Columns[IvaRecursosAsignadosData.ZON_ID_FIELD],
                     "El campo es obligatorio  ");


        //reintegros_Rendimientos  debe ser menor que Rendimientos
        if (Convert.ToDecimal(e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_RENDIMIENTOS_FIELD]) > Convert.ToDecimal(e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD]))
            AddError(e.Errors, gidvRecursosIva.Columns[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD],
                     "El valor de REINTEGROS_RENDIMIENTOS debe ser menor que RENDIMIENTOS RENDIMIENTOS  ");


        
        if (Convert.ToDecimal(e.NewValues[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD]) > Convert.ToDecimal(e.NewValues[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD]))
            AddError(e.Errors, gidvRecursosIva.Columns[IvaRecursosAsignadosData.IRA_RENDIMIENTOS_FIELD],
                     "El valor de RENDIMIENTOS debe ser menor que ASIGNADO  ");


        
        if (Convert.ToDecimal(e.NewValues[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD]) > Convert.ToDecimal(e.NewValues[IvaRecursosAsignadosData.IRA_ASIGNADO_FIELD]))
            AddError(e.Errors, gidvRecursosIva.Columns[IvaRecursosAsignadosData.IRA_REINTEGROS_FIELD],
                     "El valor de REINTEGROS debe ser menor que ASIGNADO  ");


        //
    }

    #endregion

    #region AddError

    static void AddError(Dictionary<GridViewColumn, string> errors, GridViewColumn column, string errorText)
    {
        if (errors.ContainsKey(column)) return;
        errors[column] = errorText;
    }

    #endregion

    #region gidvRecursosIva_RowDeleting

    protected void gidvRecursosIva_RowDeleting(object sender, ASPxDataDeletingEventArgs e)
    {
        IvaRecursosAsignados objIvaRecursosAsignados = new IvaRecursosAsignados(ConfigurationManager.AppSettings["Conn"]);
        try
        {
            objIvaRecursosAsignados.EliminarRecursosAsignados(e.Keys[IvaRecursosAsignadosData.IRA_ID_FIELD].ToString());
        }
        catch (Exception objEx)
        {
            //ExceptionManager.Publish(objEx);
            //lblMensaje.Visible = true;
            //Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, Utilidad.TraerMensaje("gmsgErrorGeneral"), lblMensaje);
        }
        //Cancel automatic update
        e.Cancel = true;
        //back to the browse mode
        ((ASPxGridView)sender).CancelEdit();

        
        BindDatosRecursosAsignados();
    }

    #endregion

    protected void btnXlsExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteXlsToResponse();
    }
}
